package com.lab.common;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 日期时间工具类
 * 封装常用的日期转换、格式化方法
 */
public class DateUtils {

    /**
     * 格式化LocalDate为字符串（yyyy-MM-dd）
     */
    public static String formatDate(LocalDate date) {
        if (date == null) {
            return null;
        }
        return date.format(DateTimeFormatter.ofPattern(Constants.DATE_FORMAT));
    }

    /**
     * 格式化LocalDateTime为字符串（yyyy-MM-dd HH:mm:ss）
     */
    public static String formatDateTime(LocalDateTime dateTime) {
        if (dateTime == null) {
            return null;
        }
        return dateTime.format(DateTimeFormatter.ofPattern(Constants.DATETIME_FORMAT));
    }

    /**
     * 生成周标识（如2025-W42）
     */
    public static String getWeekIdentifier(LocalDateTime dateTime) {
        if (dateTime == null) {
            dateTime = LocalDateTime.now();
        }
        return dateTime.format(DateTimeFormatter.ofPattern(Constants.WEEK_IDENTIFIER_FORMAT));
    }
}